﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ibba.agil.core;
using ibba.agil.core.common;

namespace ibba.agil.data.data
{
    public class tbagi001Even_ENT : EntityData, IDataEntity
    {
        private manager.tbagi001Even_MNG _manager;

        #region Data

        public int codGrupEven { get; set; }
        public int codEven { get; set; }    
        public string codTipoFortItgr { get; set; }
        public string codTipoEven { get; set; }    
        public string desEven { get; set; }        
        public string indGeraParc { get; set; }    
        public string indAtivInat { get; set; }

        #endregion

 
        /// <summary>
        /// Construtor necessario para configuração dos mapeamentos :: Entidade < -- > TABELA
        /// </summary>
        public tbagi001Even_ENT()
        {
            // determina o mapeamento entre a tabela e entidade
            base.MapperTable = new Dictionary<string, string>() { { this.GetType().Name, "dbo.TBAGI001_EVEN" } };

            // determina o mapeamento entre a coluna da tabela e propriedade
            base.Mapper = new Dictionary<string, string>() { 
                     {"codGrupEven", "COD_GRUP_EVEN"    },     
                     {"codEven", "COD_EVEN"  },
                     {"codTipoFortItgr", "COD_TIPO_FORT_ITGR"  },
                     {"codTipoEven", "COD_TIPO_EVEN"  },
                     {"desEven", "DES_EVEN"  },
                     {"indGeraParc", "IND_GERA_PARC"  },
                     {"indAtivInat", "IND_ATIV_INAT"  }
            };

            // determina o mapeamento das chaves
            base.MapperKeys = new Dictionary<string, string>() { 
                     {"codGrupEven", "COD_GRUP_EVEN"},
                     {"codEven", "COD_EVEN"},
                     {"codTipoFortItgr", "COD_TIPO_FORT_ITGR"}
            };

            // determina se a chave é identity
            base.MapperKeyIsNotIdentity = true;


            // instancia o manager
            _manager = new manager.tbagi001Even_MNG();
        }

        public override void Save()
        {
            _manager.Save(this);
        }

        public override void Save(TransactionManager transactionContext)
        {
            _manager.Save(this, transactionContext);
        }

        public override void Delete()
        {
            _manager.Delete(this);
        }

        public override void Delete(TransactionManager transactionContext)
        {
            throw new NotImplementedException();
        }
    }
}
